5072. Подсчет количества ребер

 

Ориентированный граф задан матрицей смежности. Найдите количество ребер в графе.

 

Вход. Первая строка содержит количество вершин в графе n (1 ≤ n ≤ 100). Далее следуют n строк по n чисел, каждое из которых равно 0 или 1 – матрица смежности графа.

 

Выход. Выведите количество ребер графа.

 

Пример входа

Пример выхода

3

0 1 1

1 0 1

0 1 1

6

 

 

РЕШЕНИЕ

графы

 

Анализ алгоритма

Поскольку граф ориентированный, то количество ребер равно числу единиц в матрице смежности. С другой стороны, количество ребер равно сумме всех чисел матрицы смежности.

 

Реализация алгоритма

Читаем входные данные. Подсчитываем количество единиц в переменной res. Оно также равно сумме всех чисел матрицы смежности.

 

scanf("%d",&n);

for(i = 0; i < n; i++)

for(j = 0; j < n; j++)

{

  scanf("%d",&val);

  res += val;

}

 

Выводим ответ.

 

printf("%d\n",res);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

   

    int res = 0;

    for(int i = 0; i < n; i++)

    for(int j = 0; j < n; j++)

    {

      int value = con.nextInt();

      res += value;

    }

 

    System.out.println(res);     

    con.close();

  }

}